home *** CD-ROM | disk | FTP | other *** search
- 1000 REM
- 1010 REM Convert 2.5 DXF File to 2.1 Format
- 1020 REM Removes all incompatabilities
- 1023 REM ie, MINSERT row and column counts lost,
- 1026 REM COLOR and LINETYPE by Entity lost, and
- 1029 REM New System Variables removed.
- 1030 REM
- 1040 LINE INPUT "Acad 2.5 DXF file name: "; A$
- 1050 A$=A$+".dxf"
- 1060 OPEN "i",1,A$
- 1070 LINE INPUT "Acad 2.18 DXF file name: "; B$
- 1080 B$=B$+".dxf"
- 1090 OPEN "o",2,B$
- 1100 REM
- 1110 REM Start the input and output
- 1120 REM
- 1130 GOSUB 3000
- 1160 IF S$="HEADER" THEN GOSUB 2000
- 1170 IF S$="ENTITIES" THEN GOSUB 2500
- 1180 IF S$="BLOCKS" THEN GOSUB 2500
- 1185 IF S$="STYLE" THEN GOSUB 2800
- 1190 IF S$ = "EOF" THEN GOTO 5000
- 1320 GOSUB 4000
- 1380 GOSUB 3000
- 1390 IF G% = 0 OR G% = 2 THEN GOTO 1160 ELSE GOTO 1320
- 2000 REM
- 2002 REM Subroutine to process the Header section
- 2003 REM
- 2005 IF S$ = "ENDSEC" THEN RETURN
- 2010 IF S$ = "$ANGBASE" THEN GOTO 2400
- 2020 IF S$ = "$ANGDIR" THEN GOTO 2400
- 2030 IF S$ = "$CECOLOR" THEN GOTO 2400
- 2040 IF S$ = "$CELTYPE" THEN GOTO 2400
- 2050 IF S$ = "$COORDS" THEN GOTO 2400
- 2060 IF S$ = "$DIMALT" THEN GOTO 2400
- 2070 IF S$ = "$DIMALTD" THEN GOTO 2400
- 2080 IF S$ = "$DIMALTF" THEN GOTO 2400
- 2090 IF S$ = "$DIMBLK" THEN GOTO 2400
- 2100 IF S$ = "$DIMDLE" THEN GOTO 2400
- 2110 IF S$ = "$DIMLFAC" THEN GOTO 2400
- 2120 IF S$ = "$DIMRND" THEN GOTO 2400
- 2130 IF S$ = "$DIMZIN" THEN GOTO 2400
- 2140 IF S$ = "$DRAGP1" THEN GOTO 2400
- 2150 IF S$ = "$DRAGP2" THEN GOTO 2400
- 2160 IF S$ = "$FASTZOOM" THEN GOTO 2400
- 2170 IF S$ = "$HIGHLIGHT" THEN GOTO 2400
- 2180 IF S$ = "$HIGHLIGHT" THEN GOTO 2400
- 2190 IF S$ = "$MIRRTEXT" THEN GOTO 2400
- 2200 IF S$ = "$PDMODE" THEN GOTO 2400
- 2210 IF S$ = "$PDSIZE" THEN GOTO 2400
- 2220 IF S$ = "$PLINEWID" THEN GOTO 2400
- 2230 IF S$ = "$SKPOLY" THEN GOTO 2400
- 2240 IF S$ = "$TDCREATE" THEN GOTO 2400
- 2250 IF S$ = "$TDINDWG" THEN GOTO 2400
- 2255 IF S$ = "$TDUPDATE" THEN GOTO 2400
- 2258 IF S$ = "$USRTIMER" THEN GOTO 2400
- 2260 IF S$ = "$TDUSRTIMER" THEN GOTO 2400
- 2262 IF S$ = "$USERR1" THEN GOTO 2400
- 2264 IF S$ = "$USERR2" THEN GOTO 2400
- 2266 IF S$ = "$USERR3" THEN GOTO 2400
- 2268 IF S$ = "$USERR4" THEN GOTO 2400
- 2270 IF S$ = "$USERR5" THEN GOTO 2400
- 2272 IF S$ = "$USERI1" THEN GOTO 2400
- 2274 IF S$ = "$USERI2" THEN GOTO 2400
- 2276 IF S$ = "$USERI3" THEN GOTO 2400
- 2278 IF S$ = "$USERI4" THEN GOTO 2400
- 2280 IF S$ = "$USERI5" THEN GOTO 2400
- 2320 GOSUB 4000
- 2321 REM The following two statements correct an error in the
- 2322 REM DXF format of Version 2.18
- 2323 IF S$ = "$TEXTSTYLE" THEN GOSUB 3000 : G% = 8 : GOTO 2340
- 2324 IF S$ = "$CLAYER" THEN GOSUB 3000 : G% = 7 : GOTO 2340
- 2330 GOSUB 3000
- 2340 IF G% = 9 OR G% = 0 THEN GOTO 2005 ELSE GOTO 2320
- 2400 GOSUB 3000
- 2410 IF G% = 9 OR G% = 0 THEN GOTO 2005 ELSE GOTO 2400
- 2500 REM
- 2502 REM Subroutine to process the Entity AND Block sections
- 2503 REM
- 2505 IF S$ = "INSERT" THEN GOSUB 2600
- 2510 IF G% = 6 OR G% = 62 THEN GOTO 2580
- 2520 GOSUB 4000
- 2580 GOSUB 3000
- 2590 IF S$ = "EOF" OR S$ = "ENDSEC" THEN RETURN
- 2595 GOTO 2505
- 2600 REM
- 2602 REM Subroutine to process the INSERT Entities
- 2603 REM
- 2610 IF G% = 44 OR G% = 45 OR G% = 6 OR G% = 62 THEN GOTO 2680
- 2615 IF G% = 70 OR G% = 71 THEN GOTO 2680
- 2620 GOSUB 4000
- 2680 GOSUB 3000
- 2690 IF G% <> 0 THEN GOTO 2610
- 2700 IF G% = 0 AND S$ = "INSERT" THEN GOTO 2610 ELSE RETURN
- 2800 REM
- 2810 REM Subroutine to process STYLE Entries and remove bigfont
- 2820 REM field (type 4)
- 2825 REM
- 2830 IF G% = 4 THEN GOTO 2850
- 2840 GOSUB 4000
- 2850 GOSUB 3000
- 2860 IF G% <> 0 THEN GOTO 2830
- 2870 IF G% = 0 AND S$ = "STYLE" THEN GOTO 2830 ELSE RETURN
- 3000 REM
- 3010 REM Read group code and following value
- 3020 REM
- 3030 INPUT #1, G%
- 3040 IF G% < 10 THEN LINE INPUT #1, S$ : RETURN
- 3050 IF G% >= 10 AND G% <= 49 THEN INPUT #1, V : RETURN
- 3060 IF G% >= 50 AND G% <= 59 THEN INPUT #1, A : RETURN
- 3070 IF G% >= 60 AND G% <= 69 THEN INPUT #1, P% : RETURN
- 3080 IF G% >= 70 AND G% <= 79 THEN INPUT #1, F% : RETURN
- 3090 RETURN
- 4000 REM Subroutine to write acceptable group codes and values
- 4005 REM
- 4007 PRINT #2, G%
- 4008 IF G% < 10 THEN PRINT #2,S$ : RETURN
- 4010 IF G% >= 10 AND G% <= 49 THEN PRINT #2, V :RETURN
- 4020 IF G% >= 50 AND G% <= 59 THEN PRINT #2,A : RETURN
- 4030 IF G% >= 60 AND G% <= 69 THEN PRINT #2,P% : RETURN
- 4040 IF G% >= 70 AND G% <= 79 THEN PRINT #2,F% : RETURN
- 4050 RETURN
- 5000 PRINT #2, G% : PRINT #2, S$
- 5010 PRINT "Conversion complete"
- 5020 END